package tablero;




public class Coordenada  {
	public static final String X = "x";
	public static final String Y = "y";
	

	private int x;
	private int y;
	
	public Coordenada(int i, int j) {
		this.x = i;
		this.y = j;
	}

	public Coordenada() {
		
	}


	/**
	 * Este metodo se redefinio, para que una cordenada sea igual a otro si solo
	 * si: * el numero de filas es igual en ambas * el numero de columnas es
	 * igual en ambas
	 * 
	 * @param Coordenada
	 *            x
	 * @return boolean
	 */
	boolean equals(Coordenada x) {
		
		return this.getX() == x.getX() && this.getY() == x.getY();
	}

	
	protected int diferenciaConCoord(Coordenada c)
	{
		return Math.abs(this.getX()- c.getX()) + 
			   Math.abs(this.getY()- c.getY());
		
	}
	
	protected boolean mayorA(Coordenada c)
	{
		return (this.getX()>=c.getX()) &&
		       (this.getY()>=c.getY());
		       
	}

	protected boolean mayorACero(Coordenada c)
	{
		return (0<=c.getX()) &&
		       (0<=c.getY());
	}
	protected Coordenada siguienteCoord(Direccion d) {
		
		int actualX= this.getX();
		int actualY= this.getY();
		
	
		if(d==Direccion.NORTE)
		{ actualX= actualX+1;
		  this.setX(actualX);
			return this; }
		else{if(d==Direccion.SUR)
			{ actualX= actualX-1;
			this.setX(actualX);
			return this; }
			else{if(d==Direccion.ESTE)
			{ actualY= actualY+1;
			this.setY(actualY);
			return this; }
			else{  actualY= actualY-1;
			this.setY(actualY);
			return this;}
		} }
		
		
	}



	public int getX() {
		return x;
	}



	public void setX(int x) {
		this.x = x;
		
	}



	public int getY() {
		return y;
	}



	public void setY(int y) {
		this.y = y;
		
	}

	public String toString(){
		return "(" + this.x + " , " + this.y + ")";
	}
	
	
}
